package net.lab1024.sa.admin.module.sast.project.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

/**
 * 
 * @TableName  t_project
 */
@Data
@TableName(value ="t_project")
public class ProjectEntity{
    /**
     * 项目自增ID（主键）
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 项目全局唯一标识（UUID，关联tasks表的component_uuid）
     */
    private String uuid;

    /**
     * 项目显示名（用户可自定义，如Demo项目）
     */
    private String name;

    /**
     * 父项目UUID（主项目为NULL，分支/PR项目关联主项目的uuid）
     */
    private String projectUuid;

    /**
     * 项目类型，枚举值：TRK（主项目/追踪项目）、BRC（分支）、PR（Pull Request）
     */
    private String qualifier;

    /**
     * 项目唯一标识（projectKey，用户创建项目时定义，如com.example:demo）
     */
    private String projectkey;

    /**
     * 项目描述（可选，用户填写）
     */
    private String description;

    /**
     * 项目长名称（通常与name一致，分支/PR项目会拼接分支名，如Demo项目-feature/login）
     */
    private String longName;

    private Date createdTime;

    /**
     * 项目信息最后更新时间（毫秒精度）
     */
    private Date updatedTime;

    /**
     * 项目是否被删除，TRUE（已删除，逻辑删除）、FALSE（正常）
     */
    private Integer deleted;

    /**
     * 项目是否私有，TRUE（仅授权用户可见）、FALSE（公开）
     */
    private Integer isPrivate;

    /**
     * 项目可见性权限级别：1=仅管理员可见，2=仅开发人员可见，3=游客可见，4=管理员和开发人员可见，5=管理人员和游客可见，6=开发人员和游客可见，7=无权限限制
     */
    private int visibility;

    /**
     * 分支类型（仅qualifier=BRC时有效）：LONG（长期分支）、SHORT（短期分支）
     */
    private String branchType;

    /**
     * Pull Request标识（仅qualifier=PR时有效，如pr-123）
     */
    private String pullRequestKey;

    /**
     * 项目语言，例如：Java、C/C++
     */
    private String language;
}